package com.testing.class1;

/**
 * @Classname MathTest
 * @Description 类型说明
 * @Date 2021/4/9 21:13
 * @Created by 特斯汀Roy
 */
public class IntegerTest {

    public static void main(String[] args) {
        //变量的声明 定义
        int a;
        int b=1;
        byte ba=127;
        byte be=(byte)128;
        byte bb=1;
        //进行运算的时候，整数默认使用int类型。
        //直接使用会报错： 因为ba+bb默认使用了int类型作为运算结果。赋值类型对应不上。
//        byte bc= ba+bb;
        //将计算结果先括起来，表示先运算然后得到结果再转byte。
        //强制转换优先级最高，所以要提高 ba+bb的计算优先级，得到结果再处理。
        byte bd =(byte)(ba+bb);

        System.out.println("第一个"+(ba + 1));
        System.out.println( "第二个"+ (byte) (ba + 1) );
        System.out.println("be的结果"+be);
        System.out.println("bd的结果"+bd);


        //int类型
        int ia=123;

        //long型精度比int更高，所以可以自动转换。
        long la=1234;

        //整数超出int的范围没有办法直接表示，需要用long的时候
//        int ia=999999999999999999;
        //默认整数使用int类型，所以如果要用long型，需要转换,在数字后面加上L就行。
        long lb=999999999999999999L;

        //int型与long型相加，结果取最高精度。
        long ld=ia+lb;
        System.out.println("ld的结果是"+ld);

        //执行计算才会报错，执行前不知道。
        int ima=2147483647;
        short sa=123;
        int lim=ima+sa;
        System.out.println("超出范围的int型"+lim);
    }



}
